package 面试经典150题.二叉树;

import common.TreeNode;

import java.util.ArrayList;
import java.util.List;

/**
 * @author tmh
 * @date 2024/6/20 20:48
 * @description
 */
public class T230二叉搜索树中第K小的元素 {
    List<Integer> list = new ArrayList<>();

    public int kthSmallest(TreeNode root, int k) {
        traversal(root);
        //然后在返回第k-1元素的值
        return list.get(k - 1);

    }

    //利用中序遍历 把结果放在list集合里面，因为是二叉搜索树，所以遍历出来得到的集合里面的数据一定是有序增加的
    public void traversal(TreeNode root) {
        if (root == null) {
            return;
        }
        traversal(root.left);
        list.add(root.val);
        traversal(root.right);
    }
}
